import re

class Tool:
    def __init__(self, path):
        print(f'源数据：{path}')
        self.path = path
    
    # 反转路径
    def reversPath(self):
        suffix = ';'
        # 分割
        p = self.path.split(';')
        newPath = []
        # 获取反方向
        for i in p:
            str = i.split(' ')
            if len(str)>1:
                # insert 返转路径
                newPath.insert(0, self._strRever(i))
            else:
                newPath.insert(0, self._strRever(i))
        newPath = suffix.join(newPath)
        # 反转 后 返回数据
        return newPath
    def _strRever(self, i):
        if 'ne' in i:
            return (re.sub(r'ne', 'sw', i))
        if 'sw' in i:
            return (re.sub(r'sw', 'ne', i))
        if 'nw' in i:
            return (re.sub(r'nw', 'se', i))
        if 'se' in i:
            return (re.sub(r'se', 'nw', i))
        if 'eu' in i:
            return (re.sub(r'eu', 'wd', i))
        if 'ed' in i:
            return (re.sub(r'ed', 'wu', i))
        if 'wu' in i:
            return (re.sub(r'wu', 'ed', i))
        if 'wd' in i:
            return (re.sub(r'wd', 'eu', i))
        if 'nu' in i:
            return (re.sub(r'nu', 'sd', i))
        if 'nd' in i:
            return (re.sub(r'nd', 'su', i))
        if 'su' in i:
            return (re.sub(r'su', 'nd', i))
        if 'sd' in i:
            return (re.sub(r'sd', 'nu', i))
        if 'enter' in i:
            return (re.sub(r'enter', 'out', i))
        if 'out' in i:
            return (re.sub(r'out', 'enter', i))
        if 'e' in i:
            return (re.sub(r'e', 'w', i))
        if 's' in i:
            return (re.sub(r's', 'n', i))
        if 'w' in i:
            return (re.sub(r'w', 'e', i))
        if 'n' in i:                            
            return (re.sub(r'n', 's', i))
        if 'u' in i:
            return (re.sub(r'u', 'd', i))
        if 'd' in i:
            return (re.sub(r'd', 'u', i))